home *** CD-ROM | disk | FTP | other *** search
/ Practical Internet Web Designer 86 / PIWD86.iso / pc / contents / dreamweaver / software / dwmx2004.exe / Disk1 / data1.cab / Configuration_En / Commands / duplicate set.js < prev    next >
Encoding:
JavaScript  |  2003-09-05  |  4.3 KB  |  147 lines

  1. // Copyright 2000, 2001, 2002, 2003 Macromedia, Inc. All rights reserved.
  2.  
  3. //*************** GLOBALS *****************
  4. var FILE_CONFIG_PATH = dw.getConfigurationPath();
  5. var FILE_CUSTOM_SET = FILE_CONFIG_PATH + "/Menus/Custom Sets";
  6. var PLATFORM = navigator.platform;
  7. //******************* API **********************
  8. function commandButtons()
  9. {
  10.    return new Array( MM.BTN_OK,  "cmdOK()"
  11.                    , MM.BTN_Cancel, "cmdCancel()");
  12. }
  13.  
  14. function cmdOK()
  15. {
  16.   var newSetName, facSetArray = new Array(), custSetArray = new Array();
  17.   var canWrite = true,fileCopied;
  18.   var oldFileName = MM.commandArgument[0];
  19.   var currentShortcutList = MM.commandArgument[1];
  20.   var oldName = currentShortcutList.shortcutListName;
  21.   
  22.   if (getExtension(oldFileName) != "xml")
  23.     oldFileName += ".xml";
  24.   
  25.   newSetName = document.duplicateSetNameField.value;
  26.   
  27.   if (newSetName.lastIndexOf(".xml") != newSetName.length-4){
  28.     newSetFilename = newSetName + ".xml";
  29.   }else{
  30.     newSetFilename = newSetName;
  31.   }
  32.  
  33.   if (isSet(newSetName, "factory"))   // check to see if name used by factory set
  34.   {
  35.     alert(errMsg(MSG_NameUsedByFactorySet, newSetName));
  36.     canWrite = false;
  37.   }
  38.   else if (isSet(newSetName, "custom"))
  39.   {
  40.     if (oldFileName == newSetFilename)
  41.   {
  42.     alert(MSG_SetNameIsTheSame);
  43.     canWrite = false;
  44.   }
  45.     if (!confirm(errMsg(MSG_ShortcutSetAlreadyExists,newSetName)))
  46.     canWrite = false;
  47.   }
  48.   if (canWrite)
  49.   {
  50.     fileCopied = currentShortcutList.writeToShortcutXML(FILE_CUSTOM_SET+"/"+newSetFilename,newSetName);
  51.     currentShortcutList.shortcutListName = oldName;
  52.     if (!fileCopied)
  53.       alert(errMsg(MSG_InvalidFileNameCannotSave, newSetFilename));
  54.     else
  55.     {
  56.       MM.commandReturnValue = newSetName;
  57.       window.close();
  58.     }
  59.   }
  60. }
  61.  
  62. function cmdCancel()
  63. {
  64.   window.close();
  65. }
  66. //***************** LOCAL FUNCTIONS  ******************
  67.  
  68. function initializeUI()
  69. {
  70.   var origSetFilename = MM.commandArgument[0]; // orig Set Name should be passed in
  71.   var origSetFile = FILE_CUSTOM_SET + "/" + origSetFilename;
  72.   var origSetDOM = dw.getDocumentDOM(origSetFile);
  73.   var origSetName = origSetDOM.getElementsByTagName('SHORTCUTSET')[0].getAttribute('name');
  74.   
  75.   var newSetName = origSetName + " "+LABEL_Copy;
  76.   document.duplicateSetNameField.value = newSetName;
  77.   document.duplicateSetNameField.focus();
  78.   document.duplicateSetNameField.select();
  79. }
  80.  
  81. function getCustomSetList(setType)
  82. {
  83.   var fileObj, filterFunction;
  84.   fileObj = new File(FILE_CUSTOM_SET);
  85.   if (setType == "factory")
  86.     filterFunction =  new Function("x", "return (x.isFile()) && (x.getAttributes() == 'R') && (x.getExtension()== 'xml');");
  87.   else
  88.     filterFunction =  new Function("x", "return (x.isFile()) && (x.getAttributes() != 'R') && (x.getExtension()== 'xml');");
  89.   return fileObj.listFolder(filterFunction);
  90. }
  91.  
  92. function isSet(setName, setType)
  93. {
  94.   var facSetArray = new Array(), i, retVal = false;
  95.   facSetArray = getCustomSetList(setType);
  96.   for (i=0; i<facSetArray.length; i++)
  97.   {
  98.     if (facSetArray[i] == setName)
  99.   {
  100.     retVal = true;
  101.     break;
  102.   }
  103.   }
  104.   return retVal;
  105. }
  106.  
  107. function getExtension(fileName)
  108. {
  109.   var retVal = "", index;
  110.  
  111.   index = fileName.lastIndexOf(".");
  112.   if (index != -1)
  113.     retVal = fileName.substring(index+1);
  114.   return retVal;
  115. }
  116.  
  117.  
  118. function createUniqueFilename(baseName, fileDirectory, maxLength)
  119. {
  120.   var dupe=true,counter=1, fileObj, filterFunction, filesArray, i, fileName;
  121.   var fileName;
  122.   fileName = createFileName(baseName, maxLength, counter);
  123.   fileObj = new File(fileDirectory);
  124.   filterFunction =  new Function("x", "return (x.isFile()) && (x.getExtension().toLowerCase()=='xml');");
  125.   filesArray = fileObj.listFolder(filterFunction);
  126.   while (dupe==true)
  127.   {
  128.     dupe=false;
  129.     fileName = createFileName(baseName, maxLength, counter++)
  130.     for (i=0;dupe==false && i<filesArray.length;i++)
  131.     {
  132.       if (filesArray[i].toLowerCase()== fileName.toLowerCase())
  133.         dupe=true;
  134.     }
  135.   }
  136.   return fileName;
  137. }
  138.  
  139. function createFileName(baseName, maxLength, counter)
  140. {
  141.   var fileName;
  142.   if (baseName.length >= maxLength)
  143.     fileName = baseName.substring(0,maxLength-counter.toString().length-1)+"~"+counter+".xml";
  144.   else
  145.     fileName = baseName + counter + ".xml";
  146.   return fileName;
  147. }